package com.my.code.threadpool;

/**
 * 定义线程池接口
 *
 * @author zzl
 * @date 2020/10/14
 */
public interface ThreadPool<T extends Runnable> {

    /**
     * 执行一个任务
     * @param task 实现Runnable接口的任务
     */
    void execute(T task);

    /**
     * 关闭线程池
     */
    void shutdown();


    /**
     * 增加工作线程
     */
    void addWorker(int num);

    /**
     * 减少工作线程
     */
    void removeWorker(int num);

    /**
     * 获取正在等待执行的任务数
     */
    int getTaskSize();

}
